SciCalc is a scientific calculator with the features I liked best from my last several (real) calculators. It uses algebraic entry with the usual order of operations, with parentheses available to change that order. It computes the standard scientific functions, plus one-variable statistics (average, standard deviation, and (n–1)-weighted standard deviation). The statistics are available at all times (no statistics “mode”). It has a choice of floating point and scientific notation. I had some fun with the graphics; I hope you like them.
SciCalc has been run successfully on a MacIIsi and on a MacPlus, under System 6.0.7 and System 7. It will probably run on any System from 4.1 on, but it has not been tested.
Note: I had to change the layout of the “SciCalc Settings” file somewhat. SciCalc v1.2 understands version 1.0 settings files, but SciCalc v1.0 will not be happy with the new settings file. Future settings files should be understandable to all versions from 1.2 on.
Here are some not-necessarily-obvious descriptions of the functions of various keys. If you are familiar with a scientific calculator, there are no big surprises. Short descriptions of each key are also available through balloon help in System 7.
• Second Functions: Most of the buttons have second functions (shown above the key). You can get these by clicking the “2nd” key first, or by holding down the Shift key while clicking a button with the mouse. See also the section on keyboard equivalents below.
• Clicking “C” once clears the displayed value; clicking twice clears all pending calculations.
• The degrees/radians button changes the interpretation of the arguments to the trig functions; the current setting is shown in the upper left above the displayed value. The second function of this button does the same, but in addition converts the displayed value from degrees to radians or vice-versa.
• The “hyp” key can be used to compute the hyperbolic sine, cosine, and tangent. Click “hyp” and then the appropriate trig function.
• The general power button (looks like y to the x power) behaves like a binary operator (+, -, etc.), with y as the first number entered and x as the second. Thus, to find 3 to the 5th power, you would click: 3 y^x 5 =
• The “x<—>y” button switches the arguments to any binary operation. E.g., clicking 4 y^x 3 x<—>y = will compute 3 to the 4th power. What the button actually does is swap the displayed value and the most recent value on the stack.
• Statistics: Use “CLS” to clear the statistics. Use ∑+ to enter the displayed value as a data point, and use ∑- to remove the displayed value from the list of data points; the number of data points is then displayed. The button “n” shows you the number of data points, “x bar” gives you the average, “sigma n” computes the standard deviation, and “sigma n–1” computes the (n–1)-weighted standard deviation. These are all second functions of other buttons.
• There are 10 memories. “STO” is used to store the display value in one of the memories, and “RCL” is used to recall a value. Follow either button with one of the digits 0-9. The “CLM” button clears all of the memories to 0.
• The arrow “—>” removes the last digit entered, or the decimal point.
• The calculator can use either floating point or scientific notation. In floating point mode, numbers within several orders of magnitude of 1 will be shown in normal floating point notation, but very large or small numbers will use scientific notation. You can change the mode using the “FLO” (to put it in floating point mode) and “SCI” (to put it in scientific mode) buttons.
Rather than clicking with the mouse, you can use most of the functions of the calculator via keyboard equivalents. There is also a somewhat bizarre way of reassigning these equivalents. Here is the default assignment of keys on an extended keyboard:
With shift key down:
With option key down:
With shift and option keys down:
Now for the bizarre way in which these key assignments can be changed: I assume that you know something about using ResEdit, otherwise wait until a future release of SciCalc for a better way of editing the key assignments. Included in this package is a ResEdit file KeyMap.rsrc. Make sure that you have run SciCalc at least once, so that you have a “SciCalc Settings” file in your Preferences folder inside the System folder. Run ResEdit, open KeyMap.rsrc, and copy the ‘RMAP’ resource into your “ResEdit Preferences” file. Quit ResEdit and restart, opening KeyMap.rsrc again. You should now be able to edit the ‘SCHR’ resource included in that file. This is the resource that defines the key assignments, and is really a ‘KCHR’ key mapping resource in diguise. ResEdit should give you a window like this:
The mapping from keyboard keys to calculator buttons is defined by assigning to each key a character whose hex value $mn gives the row m (1-7) and column n (1-5) of the corresponding button. To get the second function of a key, add 5 to the row number to get n. For example, the key ‘1’ on the keyboard is assigned character ‘b’, which is hex $62, since the ‘1’ button on the calculator is in the 6th row and 2nd column. On the other hand, the ‘p’ key on the keyboard is assigned the character with hex value $17 (which shows up as a box in the picture above), since ‘π’ is the second function of the button in the first row and second column. You assign a character to a key by dragging the character from the array in the top left of the window to the appropriate place on the keyboard at the bottom. The hex value of the character will be shown to you in the small rectangle in the middle of the right side of the window. If you want to assign a calculator button to a shifted and/or “optioned” key, hold those modifier keys down as you make the assignment. To clear an assignment, drag the $00 character to the key.
To have your new key assignments used, copy your new SCHR resource into the “SciCalc Settings” file, replacing the resource that is already there. Make sure that the resource keeps ID 2000. I do not recommend changing the corresponding resource that exists in SciCalc itself, for two reasons: (1) It won’t work. The resource in the Settings file overrides the one in SciCalc. (2) ResEdit is dangerous, and editing a Settings file worries me less than editing an application. Having said that, if you trash the “SciCalc Settings” file and change the resource in SciCalc itself, it will change the key assignments, and the following note will not apply.
Note: If you want to move SciCalc to another machine and retain your new key assignments, you will have to copy the “SciCalc Settings” file to the new machine as well as SciCalc itself.
It‘s a hack, but it works. A future version of the calculator will have a better way of changing the key assignments, I promise.
• The displayed value, the values stored in memory, the data for statistics, the degree/radians mode, the floating/scientific mode, and the position of the calculator on the screen are all remembered between sessions. (These are saved in the “SciCalc Settings” file in the Preferences folder in the System folder.)
• The displayed value can be copied to the clipboard for pasting into other applications. Numbers are represented as text in either floating point or scientific notation, depending on the current mode. Scientific notation uses the usual convention, e.g., 1.234E-567 for 1.234 x 10^(-567). Ten significant digits will be shown, with trailing zeros removed. “Cut” copies and clears the calculator. If there is text on the clipboard that can be interpreted as a number, you can paste this into the calculator.
• Factorials can be computed up to 1750!, close to the limit of the largest number representable on the Mac.
• You can have up to 512 pending operations and left parentheses. This should be more than sufficient for any practical use.
• The color graphics work best on a screen with 256 colors. They will also work with 16 colors, but they will affect the colors used in other programs (and look strange when the calculator is in the background). In particular, they will force the Finder and some of the fancy System 7 color touches into black and white. On a screen with 4 or fewer colors the calculator will be drawn in black and white. I am not sure what will happen if the calculator is dragged halfway between two screens with different numbers of colors, as I do not have easy access to such a system. I have tried to make it do the right thing, but I have not been able to test it.
• Added scientific mode.
• Keyboard->calculator button mapping is now done via an SCHR (=KCHR) resource, allowing editing of this mapping using ResEdit.
• Added many more keyboard equivalents.
• Rearranged buttons slightly to allow neater keyboard->calculator button mapping.
• Changed layout of settings file somewhat, added version number for future compatibility.
• Documentation redone as a TeachText file after several complaints about other formats.
• Removed bug that gave an error when calculating 0%.
Note: Version 1.1 was never released. The only change in that version was to include ‘c’ and ‘C’ as equivalents for Clear (they had inadvertantly been left out).
I am releasing this program as shareware, and asking for $10 if you use it. (After all, you can go out and buy a real calculator that does all this for $20.) What will you get for paying the fee besides a warm feeling and my undying gratitude? Well, I will be much more willing to listen to complaints and suggestions, and much more willing to release further versions. The fee includes the right to new versions as they are released. Watch for upgrades where you got this copy. I will try to let registered users know when upgrades are available. Site licences are also available; contact me for details.
This software is being distributed as is. I make no claims as to its correctness or usability. I’ve done what I can to clean out the bugs, but I’m willing to believe there are some left. Let me know.